package org.oslims.client.service;

import java.util.List;

import org.oslims.domain.BaseUser;
import org.oslims.domain.Customer;
import org.oslims.domain.LabManager;
import org.oslims.domain.LabResponsible;
import org.oslims.domain.Operator;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("userService")
public interface UserService extends RemoteService {

	List<Operator> getAllOperators(int start, int length, String sortBy, boolean desc);

	List<Operator> getAllOperators();

	public Integer getOperatorCount();

	List<LabManager> getAllLabManager(int start, int length, String sortBy, boolean desc);

	List<LabManager> getAllLabManager();

	public Integer getLabManagerCount();

	List<LabResponsible> getAllLabResponsible(int start, int length, String sortBy, boolean desc);

	List<LabResponsible> getAllLabResponsible();

	public Integer getLabResponsibleCount();

	List<Customer> getAllCustomer(int start, int length, String sortBy, boolean desc);

	List<Customer> getAllCustomer();

	public Integer getCustomerCount();

	void saveOrUpdateCustomer(Customer customer);

	void saveOrUpdateLabManager(LabManager labManager);

	void saveOrUpdateLabResponsible(LabResponsible labResponsible);

	void saveOrUpdateOperator(Operator operator);

	BaseUser findByEMailAndPassword(String eMail, String password);

}
